package com.foreveross.bsl.mam.app.application;



import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.foreveross.bsl.mam.app.application.vo.AndroidPackageMetaInfoVo;
import com.foreveross.bsl.mam.app.application.vo.MamPackageRequestVo;
import com.foreveross.bsl.mam.app.application.vo.PackageResultVo;
import com.foreveross.bsl.mam.app.application.vo.PackageTaskVo;

/**
 * [获取打包所需元数据信息]<BR>
 * [功能详细描述]
 * 
 * @author 冯伟立
 * @version [javatest, 2013-7-2]
 */
@Path(value = "/packs")
public interface AppPackageMetaInfoApplication {

	/**
	 * [获取系统相关元数据信息]<BR>
	 * 1.根据os类型分别返回IOS,ANDROID等AbstractPackageMetaInfo子类
	 * 
	 * @param os
	 *            系统类型<BR>
	 * 
	 * @return 2013-7-2 下午3:14:00
	 */
	@POST
	@Path("/packMetaInfo")
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public AndroidPackageMetaInfoVo getPackageInfoByOS(
			MamPackageRequestVo packageRequestVo);

	@POST
	@Path("/callBackResult")
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public void callBackResult(PackageResultVo packageResultVo);
	
	@PUT
	@Path("/task")
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public PackageTaskVo saveEntity(PackageTaskVo entity);

	@POST
	@Path("/task")
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public PackageTaskVo updateEntity(PackageTaskVo entity);

	@DELETE
	@Path("/task/{id}")
	public void deleteEntity(@PathParam("id") String id);

	@GET
	@Path("/task/{id}")
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public PackageTaskVo getEntity(@PathParam("id") String id);
	
	

	

}
